In random testing, it is often desirable to produce a ``quick test''
--- an extremely inexpensive test suite that can serve as a frequently
applied regression and allow the benefits of random testing to be
obtained even in very slow or over-subscribed test environments.
Delta debugging is an algorithm that, given a failing test case,
produces a smaller test case that also fails, and typically executes
much more quickly.  Delta debugging of random tests can produce
effective regression suites for previously detected faults, but such
suites often have little power for detecting new faults, and in some
cases provide poor code coverage.  This paper proposes extending delta
debugging by simplifying tests with respect to code coverage, an
instance of a generalization of delta debugging we call \emph{cause
reduction}.  We show that test suites reduced in this fashion can
provide very effective quick tests for real-world programs.  For
Mozilla's SpiderMonkey JavaScript engine, the reduced suite is
\emph{more} effective for finding software faults, even if its reduced
runtime is not considered.  The effectiveness of a
reduction-based quick test persists through major changes to the
software under test.
